package collection.list;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Consumer;

//Collection的三种遍历方式
public class Traverse {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Java");
        list.add("Python");
        list.add("C++");
        list.add("JavaScript");
        list.add("JavaScript");

        //第一种：Iterator迭代器：在遍历中不依赖索引
        Iterator<String> it = list.iterator();
        //判断是否有元素
        while (it.hasNext()) {
            //接收当前元素并指向下一个元素
            String s = it.next();
            System.out.println(s);
        }
        System.out.println("=========================================");
        //第二种：增强for循环遍历
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("=========================================");
        //lambda表达式forEach()

        //匿名内部类
//        list.forEach(new Consumer<String>() {
//            @Override
//            public void accept(String s) {
//                System.out.println(s);
//            }
//        });
        list.forEach(s->System.out.println(s));
        //方法引用
        list.forEach(System.out::println);
    }
}
